import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse, type InternalAxiosRequestConfig } from "axios";

// 创建axios实例--- 基础配置
let service: AxiosInstance = axios.create({
    baseURL: "http://localhost:8888",
    timeout: 3000
})

// 请求拦截器
service.interceptors.request.use((conf: InternalAxiosRequestConfig) => {
    // 一般会操作：设置头部
    // conf.headers["Content-Type"] = "application/x-www-form-urlencoded"
    // conf.headers["token"]
    return conf
})

// 响应拦截器
service.interceptors.response.use((conf: AxiosResponse) => {
    return conf.data
})

// 返回值 公用 接口类型
export interface ApiResponse<T> {
    message: string,
    data: T
}

const request = <T>(config: AxiosRequestConfig): Promise<T> => {
    return service(config)
}
export default request
// export function trend<T>() {
//   return request<T>({
//       url: "/trend"
//   })
// }

